iT邦幫忙

2023 iThome 鐵人賽

DAY 10
1
Modern Web

什麼!在網頁上也可以寫遊戲?系列 第 10

[Day 10] 成品實作 - 被追殺的天影武士(複習篇)

  • 分享至 

  • xImage
  •  

前陣子我們終於把事件表中基礎的功能大致都介紹了一遍,今天算是一個小小的複習篇,我們要來將前陣子所學的各項技能,融合成一個完整的小作品,順便帶各位看看我自己是怎麼控制遊戲流程的。

前置作業

首先由於我們是基於光暈戰記這款遊戲的系統上去創造,所以主要玩法還是與原遊戲的系統本身有所關連,這可以說是好事也是壞事,不過我們暫且先不談,先來想想我們要做什麼。

我現在心中有個劇本,就是玩家身為天影武士,被皇家騎士追殺,逃到了艾爾瑪村,眼看皇家騎士就要追來,村長決定先讓這位過去的大恩人避避風頭,不料皇家騎士強行搜索村莊,眼看危機就在眼前,玩家該如何抉擇呢?

這個劇本比較特別的部分是玩家一開始會身負重傷,幾乎是再被打一下就死了,但我們會控制遊戲流程,讓玩家有機會一個一個解決敵方,其實遊戲的勝利方法只有一個,就是擊倒所有敵人,但會有三種失敗方式。

  • 玩家死亡:最基本的失敗方式,在光暈中每場遊戲當玩家被擊殺且不再有復活機會時,同等於任務失敗。
  • 村民死亡:若玩家不小心誤傷了村民,也會導致任務失敗。
  • 玩家被發現:當敵方角色發現了正在躲藏的玩家時,也會任務失敗。

好了,簡單的大綱已經想完了,接下來就是要來把這些東西實踐啦~

CG 範例事件表

今天的介紹可能需要搭配上方範例事件表的使用,因為事件數量的關係,不太適合一一使用圖片介紹,所以我會挑重點講。

初始化角色、畫面特效

一開始我們需要有一個空的事件表,並且需要對遊戲進行一些設定,在 光暈戰記遊戲設定 內,這次由於是單人遊戲,所以 遊戲房大小 設為 1,陣營同樣為天影限定,地圖也是 elmar.twmap,其他等等在看。

接著我新增了兩個事件準備用來初始化遊戲,其中「初始化」,我用來在畫面上新增一個黑畫面,用於等等可以淡出黑畫面來達到淡入主畫面的效果,同時為了這個效果,我需要將設定內的 當遊戲開始時 設定成 馬上顯示遊戲畫面,否則就會跟預設的淡入發生衝突,然後我將遊戲暫停,同時新增了幾個村民 NPC。

而在事件「初始化玩家角色」的部分,我將玩家的兩個預設武器皆設為拳頭,並給予一把會掉落的大刀,還把角色的當前血量降到剩下 10%。

玩家進入村莊過場動畫

開場劇情」中用了許多沒見過的動作,受傷滴血特效、攝影機焦點、畫面遮色片、人物走至定點 等等,大多都是為了添加氣氛、細節所增加的,每個人的想法不同,這些只是我的呈現方式而已,各位也可以有自己的想法去使用不同的動作組合出自己心目中所想的樣子,總之此事件主要就是讓玩家走到村民面前。

當玩家走到村民面前時,會觸發事件「對話-1」,讓村民關心玩家身上出血的狀態,並詢問發生了什麼事情。

在話說到一半的時候又觸發「皇家騎士出現」,顧名思義就是玩家的敵人出現了,接著繼續觸發「對話-2」進行對話。

接著這裡就很酷了,由於事件動作的執行本身是直線性的,意思是動作會一次從頭執行到尾,沒有分歧,但這個時候我想要讓兩個地方同時都在發生一些事情,所以我在動作中途觸發了「女村民帶著玩家躲起來」,並且不等待該事件執行完畢,繼續執行下面的動作,而後又觸發了「皇家騎士往村莊移動」,所以此時事件的流程就出現了分歧,有兩個事件正在運行中。

由於事件控制的剛剛好,當玩家躲進三合院內的時候,皇家騎士正好進入攝影機的範圍,並要求搜查村莊是否有窩藏天影。

皇家開始搜查村莊

事件「皇家開始搜查村莊」在任務繼續之前,會先告知玩家目標以及失敗條件,而後控制兩名帝國士兵到處搜查,其中一個會慢慢靠近玩家躲藏的位置,並且在時間到後嘗試觸發下一個事件。

當觸發事件「帝國士兵察覺到不對勁」後,系統會檢查該名士兵是否已經死亡,或是正在戰鬥中,如果都沒有,就代表玩家沒有任何動作,會通過檢查並進入結局劇情,也就是玩家被抓到,任務失敗的劇情。

但如果該檢查沒有被通過時,就代表該士兵已經被玩家殺死,或是正在跟玩家對戰,此時就不會進入結局劇情,因為這時不是玩家死,就是士兵死,如果玩家被擊殺也算是失敗。

而在檢查沒有通過的同時,就會觸發事件「帝國士兵察覺到不對勁觸發失敗」代表玩家還活著,此時過一段時間後,皇家騎士會親自進入三合院內,再過一段時間後,皇家們就會無條件的追蹤玩家了。

最後事件「玩家擊退所有皇家」,就是遊戲勝利的結局劇情,其中有一個觸發是 事件觸發後,設定了當事件「皇家開始搜查村莊」被觸發後停用,也就是說在該事件還沒觸發之前,此事件都會一直等待,直到指定的事件被觸發時,才會開始運行檢查,且因為觸發已經被停用了,之後事件的觸發就等同於沒有觸發一樣,是無時無刻的,藉此達成確定皇家已經生成後,才開始檢查皇家是否全數消失,這樣才不會因為遊戲剛開始都沒有皇家就通過檢查,導致剛開始就進入結局。

此外結局事件還有一個檢查是 事件運行狀態,用來檢查事件「誤傷村民」是否有被觸發過,如果有被觸發過就不會執行此事件,這樣才不會跟結局事件發生衝突,例如已經擊殺所有皇家後,又不小心傷到村民,如果沒有這個檢查,可能就會發生兩個事件同時被觸發的情況。

其他事件

最後還有兩個比較重要的事件,其中一個「玩家衝出門」,同樣利用觸發——事件觸發後,來確認此時已經是玩家進入屋子後的劇情了,這時如果玩家正在走動,代表遊戲已經繼續,且玩家按下了 WASD 按鍵,所以就移動玩家到門的位置,嚇死村民(沒啦)。

另一個「誤傷村民」,光暈戰記預設是會打到友軍的,包含 NPC 也是一樣,但 NPC 之間友軍不會互相造成傷害,所以此時如果村民死亡,唯一的可能性就是玩家造成的,此時就會進入誤傷村民的結局劇情了。

成品演示影片

Yes

總結

前陣子教的都是片面化的操作、知識,但實際上要完成一部作品,更重要的是如何把這些東西結合起來,此時流程控制就是一個很重要的技巧,雖然我這次沒有專門解釋什麼是流程控制,不過這樣子看下來應該也可以大概理解了吧,老實說我覺得這個也沒有什麼好或不好,就是看個人的主觀意見,比起我分享自己的想法,不如把你真正做好的東西分享給你的朋友們,從他們身上聽取建議或許會更好。


上一篇
[Day 09] 變數的型別與作用範圍
下一篇
[Day 11] 在 CG 上公開自己的作品
系列文
什麼!在網頁上也可以寫遊戲?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言